﻿#ifndef WRWORKDOMAINCHANGEEVENT_H
#define WRWORKDOMAINCHANGEEVENT_H

#include <QEvent>
#include "WRWorkSession.h"

//表示工作域改变事件。
class WRSOFT_WORKING_COMMON_CLASS WRWorkDomainChangeEvent : public QEvent
{
private:
    int m_index;
    WRWorkDomain::Status m_status;
    WRWorkDomain* m_target;
    WRWorkSession* m_session;

    //释放当前对象所占用的相关资源。
    ~WRWorkDomainChangeEvent(void);

public:
    //判断指定的事件是否是当前事件。
    static bool identify(const QEvent* e);
    //判断指定的事件是否是当前事件。
    static bool identify(const QEvent& e);

    //初始化工作域改变事件。
    WRWorkDomainChangeEvent(WRWorkDomain* target, WRWorkDomain::Status status, WRWorkSession* session = 0);
    //初始化工作域改变事件。
    WRWorkDomainChangeEvent(int index, WRWorkDomain* target, WRWorkDomain::Status status, WRWorkSession* session = 0);

    //获取索引号。
    inline int index(void) const
    {
        return m_index;
    }
    //获取工作域。
    inline WRWorkDomain* target(void) const
    {
        return m_target;
    }
    //获取工作域状态。
    inline WRWorkDomain::Status status(void) const
    {
        return m_status;
    }
    //获取工作会话。
    inline WRWorkSession* session(void) const
    {
        return m_session;
    }
};

#endif // WRWORKDOMAINCHANGEEVENT_H
